home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 31
/
Aminet 31 (1999)(Schatztruhe)[!][Jun 1999].iso
/
Aminet
/
dev
/
cross
/
z88dk_v1.0s.readme
< prev
Wrap
Text File
|
1999-05-02
|
9KB
|
197 lines
Short: Z88DK - Generic Z80 Small C+ Compiler with Z88 Libraries
Author: Cain, Yorston et al, extended by Dominic Morris
Uploader: Dominic Morris <djm@jb.man.ac.uk>
Type: dev/cross
Z88DK v1.0 - sccz80 v1.10b0.51 - Source Code Archive
----------------------------------------------------
Z88DK is a package along the lines of the GBDK, however it produces code
for full Z80s and not the cutdown version in the Gameboy.
The package consists of a Small C+ Compiler, Peephole Optimizer, and
unified assembler and linker (provided by Z80asm from Interlogic).
Libraries are supplied for the Cambridge Z88 however it would be a fairly
trivial task to create libraries for other Z80 based machines.
This is the first public release of the compiler, however it has under
fairly extensive testing for 6 months and I now believe it to produce
stable code.
Features of the compiler include:
- Structs/unions
- Floating point support (either generic Z80 or stubs for the Z88 fp
calculator)
- Long (32 bits), int (16 bits), char (8 bits) datatypes
- Signed and unsigned datatypes
- Compiler support for far datatypes (allows support for up to 4MB of
memory) though no library support as yet.
- Literal pools for double constants and strings, both pools feature
literal merging (removal of repeated constants).
- ANSI & K&R function style declarations and prototypes
- Extensive support library (over 200 usable routines) including almost a
full complement of string and ctype functions
- Definition during declaration of global and local static variables
(though not auto variables)
The compiler front end (zcc) is a much rewritten affair based on the
ZCC096 frontend by Ken Yap, it has been considerably extended and rewritten
to function as much as possible like any other big box compiler frontend.
Optimization is provided courtesy of a peephole optimizer which substitutes
certain compiler output for more efficient code, in particular logical
operation on unsigned chars are well catered for. Savings in program size
of over 10% are common place.
All assembler output is generated in a form suitable for use with the
Z80 Module Assembler from Interlogic (A full setup is included within
this archive), this freely distributable assembler generates compact
object files and allows linking in of routines from multiple library files.
The source code for the entire suite is available in a separate archive
(z88dk_v1.0s.lha).
Potential Problems:
- Floating point constants may not be correctly evaluated, I can't
reproduce the problem that has been reported by some people.
- Far Pointer code is far from complete so the compiler might produce
some spectacularly duff code.
Potential source of confusion:
- This compiler comes with no warrantry, if it works for you, thats great,
if it doesn't and in the process destroys France than thats not my
problem!
The compiler lacks the following features:
- Casts (though conversions between types are done automatically this will
raise compiler warnings)
- Enums (get around by use #define)
- Typedefs (get around by use of #define)
Recompense:
- This compiler suite is provided free of charge and nothing is expected
off of you if you use it, however it would be nice to get an email if
you use it. If you release a commercial program using this package then
it would be good to learn about it and know that all my work is not in
vain! (A copy of the program would be appreciated).
- Hardware, especially of the SCSI variety, always accepted <grin>
A few thank yous:
Although I mention them in the doc file, I feel I ought to mention the
following people, without whom this compiler would not have got this far:
- Dennis Groning, this guy tirelessly compiled the compiler for WinBlows
and reported back with so many bug reports and suggestions that have
made the compiler so much better.
- Gunther Strube, without this guys assembler, z80asm, I wouldn't be sat
here writing this text.
- Garry Lancaster, for not compiling for Linux for almost 6 months(!), but
especially for putting up with me rabbiting on about it for those 6
months without getting too irate (though he did write convert Forth for
the Z88 in that time - maybe thats his way of venting anger?!?! <grin>)
Finally:
I'm still developing the Compiler, and I would very much like to keep
a unified Cross Compiler, I release the source so that you can pick up
on any bugs, laugh at the kludges which I've made(!) If you make any
changes could you please let me know so that I can incorporate them into
my set of sources - it would be a shame to come this far and end up with
n different distributions, cheers!
Have fun with the package,
d.
<djm@jb.man.ac.uk>
22/3/99
============================= Archive contents =============================
Original Packed Ratio Date Time Name
-------- ------- ----- --------- -------- -------------
144 109 24.3% 23-Mar-99 00:25:58 src.readme
1892 867 54.1% 19-Dec-95 10:27:38 +copt.1
4705 1785 62.0% 06-Dec-98 20:10:08 +copt.c
71 69 2.8% 15-Dec-98 21:10:20 +Makefile
5006 1860 62.8% 20-Mar-99 01:52:14 +copt.c
71 69 2.8% 15-Dec-98 21:10:20 +Makefile
6610 2720 58.8% 12-Aug-98 18:02:40 +cpp.h
28272 16658 41.0% 17-Feb-99 00:54:50 +cpp1
17231 6919 59.8% 12-Aug-98 18:02:50 +cpp1.c
21375 6041 71.7% 17-Feb-99 00:54:32 +cpp2.c
12420 4703 62.1% 12-Aug-98 18:02:56 +cpp3.c
17215 6326 63.2% 12-Aug-98 18:02:58 +cpp4.c
21836 7666 64.8% 12-Aug-98 18:16:04 +cpp5.c
28047 9675 65.5% 12-Aug-98 18:03:04 +cpp6.c
4071 1755 56.8% 12-Aug-98 18:03:06 +cppdef.h
32490 9250 71.5% 03-Aug-98 01:17:34 +DISSZ80.C
4425 1690 61.8% 03-Aug-98 00:40:06 +DISSZ80.H
5318 2178 59.0% 03-Aug-98 00:42:44 +DZ80.C
869 465 46.4% 03-Aug-98 00:43:16 +DZ80.H
1738 826 52.4% 08-May-98 01:16:10 +LOADFL32.C
3396 1018 70.0% 08-Nov-97 17:14:06 +PARSECMD.C
202 140 30.6% 03-Aug-98 00:41:58 +PARSECMD.H
431 258 40.1% 03-Aug-98 00:40:26 +TYPES.H
6425 2413 62.4% 28-Feb-98 09:21:36 +WHATSNEW.TXT
6372 1927 69.7% 22-Mar-99 21:27:18 +callfunc.c
158 112 29.1% 22-Mar-99 21:29:02 +callfunc.h
773 318 58.8% 22-Mar-99 21:29:04 +ccdefs.h
27510 6191 77.4% 22-Mar-99 21:28:00 +codegen.c
2636 555 78.9% 22-Mar-99 21:29:06 +codegen.h
13829 4235 69.3% 22-Mar-99 21:28:04 +const.c
455 194 57.3% 22-Mar-99 21:29:08 +const.h
5460 1987 63.6% 22-Mar-99 21:28:08 +data.c
2015 574 71.5% 22-Mar-99 21:29:08 +data.h
19731 5860 70.3% 22-Mar-99 21:28:16 +declfunc.c
607 260 57.1% 22-Mar-99 21:29:12 +declfunc.h
8177 2257 72.3% 22-Mar-99 21:28:22 +declinit.c
315 138 56.1% 22-Mar-99 21:29:12 +declinit.h
22119 5758 73.9% 22-Mar-99 21:28:12 +declvar.c
699 283 59.5% 22-Mar-99 21:29:10 +declvar.h
6362 2131 66.5% 22-Mar-99 21:29:14 +define.h
1997 800 59.9% 22-Mar-99 21:28:24 +error.c
288 117 59.3% 22-Mar-99 21:29:16 +error.h
25399 5480 78.4% 22-Mar-99 21:28:30 +expr.c
623 159 74.4% 22-Mar-99 21:29:16 +expr.h
6198 1800 70.9% 22-Mar-99 21:28:32 +float.c
336 103 69.3% 22-Mar-99 21:29:18 +float.h
5239 1664 68.2% 22-Mar-99 21:28:34 +io.c
861 254 70.4% 22-Mar-99 21:29:18 +io.h
2115 703 66.7% 22-Mar-99 21:28:38 +lex.c
278 99 64.3% 22-Mar-99 21:29:20 +lex.h
1095 458 58.1% 22-Mar-99 21:29:22 +lvalue.h
24571 6834 72.1% 22-Mar-99 21:28:38 +main.c
1268 364 71.2% 22-Mar-99 21:29:22 +main.h
1143 460 59.7% 03-Mar-99 23:53:10 +makefile
1617 699 56.7% 22-Mar-99 21:28:40 +misc.c
222 131 40.9% 22-Mar-99 21:29:24 +misc.h
11664 2694 76.9% 22-Mar-99 21:28:42 +plunge.c
477 167 64.9% 22-Mar-99 21:29:24 +plunge.h
10075 2093 79.2% 22-Mar-99 21:28:44 +preproc.c
442 142 67.8% 22-Mar-99 21:29:26 +preproc.h
21076 4944 76.5% 22-Mar-99 21:28:56 +primary.c
1202 349 70.9% 22-Mar-99 21:29:30 +primary.h
16566 4272 74.2% 22-Mar-99 21:29:00 +stmt.c
498 149 70.0%